package com.zpark;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 洗牌
 */
public class Range {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请指定数组的大小:");
        int n = scan.nextInt();//n表示数组大小
        //调用shuffle方法，给他数组大小，让他返回一个顺序打乱的，大小为n的数组
        int[] result = shuffle(n);
        //输出得到的数组
        System.out.println("得到的数组为->" + Arrays.toString(result));
    }
    /*
     * 生成n大小的，元素打乱的数组
     * n数组的大小
     * 打乱的数组
     */
    private static int[] shuffle(int n) {
        int[] baseArr = new int[n];
        for (int i = 0; i < n; i++) {
            baseArr[i] = i + 1;
        }
        int[] targetArr = new int[n];
        int index;
        for (int i = 0; i < targetArr.length; i++) {
            index = -1;
            do {
                index = (int) (Math.random() * n);
                targetArr[i] = baseArr[index];
                baseArr[index] = -1;
            } while (targetArr[i] == -1);
        }
        return targetArr;
    }
}
